// samsting : this file is auto create.

#ifndef ALIYUN_Rds_Region_DescribeDBInstanceAttributeResponse_H_
#define ALIYUN_Rds_Region_DescribeDBInstanceAttributeResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Rds_Region {

class DescribeDBInstanceAttributeResponse : public AcsResponse {
public:
  DescribeDBInstanceAttributeResponse();

  class DBInstanceAttribute {
    friend class DescribeDBInstanceAttributeResponse;
  public:

    class ReadOnlyDBInstanceId {
      friend class DescribeDBInstanceAttributeResponse;
      friend class DBInstanceAttribute;
    public:
      const string& GetDBInstanceId(void) const;
    private:
      string DBInstanceId_;
    }; // ReadOnlyDBInstanceId 

    const std::vector<ReadOnlyDBInstanceId>& GetReadOnlyDBInstanceIds(void) const;
    int  GetInsId(void) const;
    const string& GetDBInstanceId(void) const;
    const string& GetPayType(void) const;
    const string& GetDBInstanceClassType(void) const;
    const string& GetDBInstanceType(void) const;
    const string& GetRegionId(void) const;
    const string& GetConnectionString(void) const;
    const string& GetPort(void) const;
    const string& GetEngine(void) const;
    const string& GetEngineVersion(void) const;
    const string& GetDBInstanceClass(void) const;
    int64 GetDBInstanceMemory(void) const;
    int  GetDBInstanceStorage(void) const;
    const string& GetDBInstanceNetType(void) const;
    const string& GetDBInstanceStatus(void) const;
    const string& GetDBInstanceDescription(void) const;
    const string& GetLockMode(void) const;
    const string& GetLockReason(void) const;
    const string& GetReadDelayTime(void) const;
    int  GetDBMaxQuantity(void) const;
    int  GetAccountMaxQuantity(void) const;
    const string& GetCreationTime(void) const;
    const string& GetExpireTime(void) const;
    const string& GetMaintainTime(void) const;
    const string& GetAvailabilityValue(void) const;
    int  GetMaxIOPS(void) const;
    int  GetMaxConnections(void) const;
    const string& GetMasterInstanceId(void) const;
    const string& GetIncrementSourceDBInstanceId(void) const;
    const string& GetGuardDBInstanceId(void) const;
    const string& GetTempDBInstanceId(void) const;
    const string& GetSecurityIPList(void) const;
    const string& GetZoneId(void) const;
    const string& GetInstanceNetworkType(void) const;
    const string& GetVpcId(void) const;
    const string& GetConnectionMode(void) const;
  private:
    std::vector<ReadOnlyDBInstanceId> ReadOnlyDBInstanceIds_;
    int    InsId_;
    string DBInstanceId_;
    string PayType_;
    string DBInstanceClassType_;
    string DBInstanceType_;
    string RegionId_;
    string ConnectionString_;
    string Port_;
    string Engine_;
    string EngineVersion_;
    string DBInstanceClass_;
    int64  DBInstanceMemory_;
    int    DBInstanceStorage_;
    string DBInstanceNetType_;
    string DBInstanceStatus_;
    string DBInstanceDescription_;
    string LockMode_;
    string LockReason_;
    string ReadDelayTime_;
    int    DBMaxQuantity_;
    int    AccountMaxQuantity_;
    string CreationTime_;
    string ExpireTime_;
    string MaintainTime_;
    string AvailabilityValue_;
    int    MaxIOPS_;
    int    MaxConnections_;
    string MasterInstanceId_;
    string IncrementSourceDBInstanceId_;
    string GuardDBInstanceId_;
    string TempDBInstanceId_;
    string SecurityIPList_;
    string ZoneId_;
    string InstanceNetworkType_;
    string VpcId_;
    string ConnectionMode_;
  }; // DBInstanceAttribute 

  const std::vector<DBInstanceAttribute>& GetItems(void) const;

private:
  std::vector<DBInstanceAttribute> Items_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Rds_Region {

#endif // #ifndef ALIYUN_Rds_Region_DescribeDBInstanceAttributeResponse_H_

// end of file 
